#include "System.h"

using namespace std;

//用户界面功能骨架
void System::userMainGujia()
{
    int op = -1;
    while (1) {
        op = userMainPage();

        switch (op)
        {
        case 0://景点
            searchPlace();
            break;
        case 1://路径查询
            searchPathGujia();
            break;
        case 2://退出
            return;
            break;

        default:
            break;
        }
    }
}

//用户界面显示
int System::userMainPage()
{
    setbkcolor(RGB(255, 255, 255));
    cleardevice();
    //顶栏设置
    setfillcolor(RGB(130, 226, 255)); //设置矩形白色
    fillroundrect(0, 0, 375, 83, 0, 0);
    settextcolor(RGB(0, 72, 125));
    settextstyle(36, 0, "黑体");//设置文本大小，垂直压缩，字体
    setbkmode(TRANSPARENT);//去除文字背景
    outtextxy(113, 20, "校园导览");
    IMAGE closepage;
    loadimage(&closepage, "./关闭.png", 26, 26);
    putimage(333, 29, &closepage);

    //地图设置
    IMAGE whumap;
    loadimage(&whumap, "./武大地图.png", 375, 612);
    putimage(0, 83, &whumap);
    DrawMap();

    //下栏图标设置
    IMAGE ShouYe, JingDian, Chaxun;
    loadimage(&ShouYe, "./定位.png", 51, 50);
    putimage(40, 713, &ShouYe);
    loadimage(&JingDian, "./景点.png", 44, 44);
    putimage(165, 714, &JingDian);
    loadimage(&Chaxun, "./地图.png", 51, 48);
    putimage(283, 713, &Chaxun);

    settextcolor(RGB(0, 72, 125));
    settextstyle(24, 0, "黑体");//设置文本大小，垂直压缩，字体
    setbkmode(TRANSPARENT);//去除文字背景
    outtextxy(40, 772, "首页");
    outtextxy(163, 772, "景点");
    outtextxy(283, 772, "查询");

    //持续循环直到获取鼠标点击按钮的信号
    while (1) {
        if (Window::havemsg()) {
            m_msg = Window::getmsg();
            if (m_msg.x >= 136 && m_msg.x <= 238 && m_msg.y >= 701 && m_msg.y <= 807) {
                if (m_msg.message == WM_LBUTTONDOWN) { //点击景点
                    return 0;
                }
            }
            if (m_msg.x >= 258 && m_msg.x <= 360 && m_msg.y >= 701 && m_msg.y <= 807) {
                if (m_msg.message == WM_LBUTTONDOWN) { //点击查询
                    return 1;
                }
            }

            if (m_msg.x >= 316 && m_msg.x <= 375 && m_msg.y >= 15 && m_msg.y <= 68) {
                if (m_msg.message == WM_LBUTTONDOWN) { //点击关闭，则退出主页骨架回到登录骨架
                    return 2;
                }
            }
        }
    }

}





//管理员界面功能骨架（无功能展开页）
void System::managerMainGujia1()
{
    int op = -1;
    while (1) {
        op = managerMainPage1();//管理员主页面（无功能展开页）

        switch (op)
        {
        case 0://景点
            searchPlace();
            break;
        case 1://路径查询
            searchPathGujia();
            break;
        case 2://打开展开页
            managerMainGujia2();//管理员主界面骨架（打开功能展开页）
            break;
        case 3://退出
            return;
            break;

        default:
            break;
        }
    }
}

//管理员主页面（无功能展开页）
int System::managerMainPage1()
{
    setbkcolor(RGB(255, 255, 255));
    cleardevice();
    //顶栏设置
    setfillcolor(RGB(130, 226, 255)); //设置矩形
    fillroundrect(0, 0, 375, 83, 0, 0);
    settextcolor(RGB(0, 72, 125));
    settextstyle(36, 0, "黑体");//设置文本大小，垂直压缩，字体
    setbkmode(TRANSPARENT);//去除文字背景
    outtextxy(113, 20, "校园导览");
    IMAGE closepage;
    loadimage(&closepage, "./关闭.png", 26, 26);
    putimage(333, 29, &closepage);

    //地图设置
    IMAGE whumap;
    loadimage(&whumap, "./武大地图.png", 375, 612);
    putimage(0, 83, &whumap);
    DrawMap();

    //下栏图标设置
    IMAGE ShouYe, JingDian, Chaxun;
    loadimage(&ShouYe, "./定位.png", 51, 50);
    putimage(40, 713, &ShouYe);
    loadimage(&JingDian, "./景点.png", 44, 44);
    putimage(165, 714, &JingDian);
    loadimage(&Chaxun, "./地图.png", 51, 48);
    putimage(283, 713, &Chaxun);

    settextcolor(RGB(0, 72, 125));
    settextstyle(24, 0, "黑体");//设置文本大小，垂直压缩，字体
    setbkmode(TRANSPARENT);//去除文字背景
    outtextxy(40, 772, "首页");
    outtextxy(163, 772, "景点");
    outtextxy(283, 772, "查询");
    

    //展开页按钮
    setfillcolor(RGB(255, 255, 255)); //设置矩形白色
    fillroundrect(0, 614, 375, 695, 0, 0);
    settextcolor(RGB(0, 0, 0));
    settextstyle(24, 0, "黑体");//设置文本大小，垂直压缩，字体
    setbkmode(TRANSPARENT);//去除文字背景
    outtextxy(103, 656, "地点与道路管理");
    IMAGE open;
    loadimage(&open, "./打开展开页.png", 29, 16);
    putimage(173, 627, &open);

    //持续循环直到获取鼠标点击按钮的信号
    while (1) {
        if (Window::havemsg()) {
            m_msg = Window::getmsg();
            if (m_msg.x >= 136 && m_msg.x <= 238 && m_msg.y >= 701 && m_msg.y <= 807) {
                if (m_msg.message == WM_LBUTTONDOWN) { //点击景点
                    return 0;
                }
            }
            if (m_msg.x >= 258 && m_msg.x <= 360 && m_msg.y >= 701 && m_msg.y <= 807) {
                if (m_msg.message == WM_LBUTTONDOWN) { //点击查询
                    return 1;
                }
            }
            if (m_msg.x >= 149 && m_msg.x <= 226 && m_msg.y >= 617 && m_msg.y <= 655) {
                if (m_msg.message == WM_LBUTTONDOWN) { //点击打开展开页
                    return 2;
                }
            }

            if (m_msg.x >= 316 && m_msg.x <= 375 && m_msg.y >= 15 && m_msg.y <= 68) {
                if (m_msg.message == WM_LBUTTONDOWN) { //点击关闭，则退出主页骨架回到登录骨架
                    return 3;
                }
            }
        }
    }
}

//管理员主界面骨架（打开功能展开页）
void System::managerMainGujia2()
{
    int op = -1;
    while (1) {
        op = managerMainPage2();//管理员主页面（打开功能展开页）

        switch (op)
        {
        case 0://景点
            searchPlace();
            break;
        case 1://路径查询
            searchPathGujia();
            break;
        case 2://增加地点
            addplaceGujia();
            break;
        case 3://增加路径
            addPath();
            break;
        case 4://删除地点
            deleteplaceGujia();
            break;
        case 5://删除路径
            deletePath();
            break;
        case 6://管理员界面功能骨架（无功能展开页）
            managerMainGujia1();
            break;
        case 7://退出
            return;
            break;

        default:
            break;
        }
    }
}

//管理员主页面（打开功能展开页）
int System::managerMainPage2()
{
    setbkcolor(RGB(255, 255, 255));
    cleardevice();
    //顶栏设置
    setfillcolor(RGB(130, 226, 255)); //设置矩形白色
    fillroundrect(0, 0, 375, 83, 0, 0);
    settextcolor(RGB(0, 72, 125));
    settextstyle(36, 0, "黑体");//设置文本大小，垂直压缩，字体
    setbkmode(TRANSPARENT);//去除文字背景
    outtextxy(113, 20, "校园导览");
    IMAGE closepage;
    loadimage(&closepage, "./关闭.png", 26, 26);
    putimage(333, 29, &closepage);

    //地图设置
    IMAGE whumap;
    loadimage(&whumap, "./武大地图.png", 375, 612);
    putimage(0, 83, &whumap);
    DrawMap();

    //下栏图标设置
    IMAGE ShouYe, JingDian, Chaxun;
    loadimage(&ShouYe, "./定位.png", 51, 50);
    putimage(40, 713, &ShouYe);
    loadimage(&JingDian, "./景点.png", 44, 44);
    putimage(165, 714, &JingDian);
    loadimage(&Chaxun, "./地图.png", 51, 48);
    putimage(283, 713, &Chaxun);

    settextcolor(RGB(0, 72, 125));
    settextstyle(24, 0, "黑体");//设置文本大小，垂直压缩，字体
    setbkmode(TRANSPARENT);//去除文字背景
    outtextxy(40, 772, "首页");
    outtextxy(163, 772, "景点");
    outtextxy(283, 772, "查询");

    //展开页按钮
    setfillcolor(RGB(255, 255, 255)); //设置矩形白色
    fillroundrect(0, 384, 375, 695, 0, 0);
    IMAGE off;
    loadimage(&off, "./关闭展开页.png", 29, 16);
    putimage(173, 398, &off);

    //按钮设置
    BasicButton btn1(47, 440, 126, 111, 10, "增加地点");
    btn1.setbtncl(96, 211, 225);
    btn1.settext(0, 72, 125, 24, 62, 510);
    btn1.show();

    BasicButton btn2(203, 440, 126, 111, 10, "增加道路");
    btn2.setbtncl(96, 211, 225);
    btn2.settext(0, 72, 125, 24, 218, 510);
    btn2.show();

    BasicButton btn3(47, 567, 126, 111, 10, "删除地点");
    btn3.setbtncl(217, 217, 217);
    btn3.settext(40, 44, 51, 24, 62, 637);
    btn3.show();

    BasicButton btn4(203, 567, 126, 111, 10, "删除道路");
    btn4.setbtncl(217, 217, 217);
    btn4.settext(40, 44, 51, 24, 219, 637);
    btn4.show();

    IMAGE addpng, delpng;
    loadimage(&addpng, "./增加添加加号.png", 51, 50);
    putimage(85, 453, &addpng);
    putimage(241, 453, &addpng);
    loadimage(&delpng, "./删除.png", 51, 50);
    putimage(85, 580, &delpng);
    putimage(242, 580, &delpng);


    //持续循环直到获取鼠标点击按钮的信号
    while (1) {
        if (Window::havemsg()) {
            m_msg = Window::getmsg();
            if (m_msg.x >= 136 && m_msg.x <= 238 && m_msg.y >= 701 && m_msg.y <= 807) {
                if (m_msg.message == WM_LBUTTONDOWN) { //点击景点
                    return 0;
                }
            }
            if (m_msg.x >= 258 && m_msg.x <= 360 && m_msg.y >= 701 && m_msg.y <= 807) {
                if (m_msg.message == WM_LBUTTONDOWN) { //点击查询
                    return 1;
                }
            }
            if (m_msg.x >= 149 && m_msg.x <= 226 && m_msg.y >= 387 && m_msg.y <= 425) {
                if (m_msg.message == WM_LBUTTONDOWN) { //点击关闭展开页
                    return 6;
                }
            }

            btn1.setmsg(m_msg);
            if (btn1.isCliked()) { //点击增加景点按钮
                return 2;
            }

            btn2.setmsg(m_msg);
            if (btn2.isCliked()) { //点击增加道路按钮
                return 3;
            }

            btn3.setmsg(m_msg);
            if (btn3.isCliked()) { //点击删除景点按钮
                return 4;
            }

            btn4.setmsg(m_msg);
            if (btn4.isCliked()) { //点击删除道路按钮
                return 5;
            }

            if (m_msg.x >= 316 && m_msg.x <= 375 && m_msg.y >= 15 && m_msg.y <= 68) {
                if (m_msg.message == WM_LBUTTONDOWN) { //点击关闭，则退出主页骨架回到登录骨架
                    return 7;
                }
            }
        }
    }
}